package com.zt.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zt.pojo.Bookings;
import com.zt.pojo.request.BookingRequest;

import java.util.List;

/**
 * 预约服务接口
 */
public interface BookingsService extends IService<Bookings> {
    
    /**
     * 创建预约
     * @param request 预约请求
     * @param userId 用户ID
     * @return 预约ID
     */
    Integer createBooking(BookingRequest request, Integer userId);
    
    /**
     * 获取用户的预约列表
     * @param userId 用户ID
     * @return 预约列表
     */
    List<Bookings> getUserBookings(Integer userId);
    
    /**
     * 取消预约
     * @param bookingId 预约ID
     * @param userId 用户ID
     * @return 是否成功取消
     */
    boolean cancelBooking(Integer bookingId, Integer userId);
    
    /**
     * 获取用户的预约列表，按状态过滤
     * @param userId 用户ID
     * @param status 状态，如果为null则返回所有状态
     * @return 预约列表
     */
    List<Bookings> getUserBookingsByStatus(Integer userId, Integer status);
    
    /**
     * 更新预约状态
     * @param bookingId 预约ID
     * @param status 新状态
     * @return 是否更新成功
     */
    boolean updateBookingStatus(Integer bookingId, Integer status);
} 